﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Jb.Web.Utility
{
    public class AppConstants
    {
        #region Area Definitions
        public class Area
        {
            public const String ADMIN = "Admin";
            public const String PRIVATE = "Private";
            public const String JOB_SEEKER = "JobSeeker";
            public const String PUBLIC = "";//"Public";
        }
        public static class RouteNames
        {            
            public class Public
            {
                public const String DEFAULT = "Public_default";
                public const String ITEM_DETAILS = "Public_Item_Details";
                public const String CONTENT_DETAILS = "Public_Content_Details";
                public const String COMPANY_DETAILS = "Public_Company_Details";
                public const String COMPANY_JOB_DETAILS = "Public_Company_Job_Details";
            }            
        }
        #endregion

        #region UI CSS Classes
        public class UI
        {
            public const String ERROR_MESSAGE_CLASS = "ErrorMessageBox";
            public const String MESSAGE_BOX_CLASS = "InfoMessageBox";
            public const String DYNAMIC_CONTROL_PREFIX = "DP.";
            public const String NO_IMAGE = "no_image.gif";
            public const String NO_LOGO = "no_logo.gif";
        }
        #endregion

        public class Directories
        {
            //public const String PRODUCT_IMAGES = "/UploadedImages/ProductImages";
            public const String COMPANY_LOGO = "/UploadedImages/CompanyLogo";
            public const String JOBSEEKER_PHOTO = "/UploadedImages/JobSeekerPhoto";
            public const String IMAGES = "/content/images";

            public const String PRODUCT_PROPERTY_GROUP_ICONS = "/UploadedImages/ProductImages/PropertyGroupIcons";
            public const String TEMP = "/Temp";
            //public const String COMPANY_IMAGES = "/UploadedImages/CompanyLogos";
            public const String EMAIL_TEMPLATES = "/EmailTemplates";
            public const String DEFAULT_JOB_TEMPLATE_DIRECTORY = "/JobTemplates/Default";
            public const String RESUMES = "/Resumes";

            public static string LUCENE_JOB_INDEX = "/LuceneIndex/Job";
            public static string LUCENE_RESUME_INDEX = "/LuceneIndex/Resume";
        }

        public static class Sections
        {
            public const String PAGE_HEAD = "PageHeadSection";
            //public const String LEFT_MENU = "LeftMenu";
            public const String LEFT_SIDEBAR = "LeftSideBar";
            public const String RIGHT_SIDEBAR = "RightSideBar";
            public const String JAVASCRIPT_PLACEHOLDER = "JavaScriptPlaceHolder";
            //public const String IN_PAGE_STYLES = "InPageStyles";
        }
        
        #region Value Formats
        public class ValueOf
        {            
            public const String DECIMAL_FORMAT = "{0:0,0.00}";
            public const String DECIMAL_FORMAT_FOR_TEXTBOX = "{0:0}";
            //public const string DECIMAL_FORMAT_CALCULATION = "{0:00.#############}";
            //public const String DECIMAL_FORMAT_CALCULATION = "{0:00.###}";
            public const String DATE_FROMAT_DISPLAY = "MMMM dd, yyyy";
            //public const String DATE_FROMAT_FOR_FILE_NAME = "ddMMyyyy";
            //public const String DATE_SHORT_DISPLAY = "dd/MM/yyyy";
            //public const String REPORT_DATE_FORMAT = "d MMM yyyy";
            public const String DATE_FROMAT_DISPLAY_WITH_TIME = "MMMM dd yyyy, hh:mm:ss tt";
            public const String UNKNOWN = "__Unknown";
            public static DateTime DEFAULT_DATE_OF_BIRTH = new DateTime(1901, 12, 16); //16th December, 1901
        }
        #endregion

        #region Validation Constants
        public static class Validation
        {
            public const String PRODUCT_CODE = "Code";
            public const String PRODUCT_UPC = "DuplicateUPC";
            public const String INVALID_REQUEST = "InvalidRequest";
            public const String INVALID_USER = "InvalidUser";
            public const String WRONG_ACTIVATION_REQUEST = "WrongActivation";
        }
        #endregion

        #region View Data Keys
        public static class ViewDataKeys
        {           
            public const String ADDED = "Added";
            public const String SAVED = "Saved";
            public const String HAS_VALIDATION_ERROR = "HasValidationError";
            public const String GENERIC_KEY = "GenericKey";
            public const String HAS_ACTIVATED = "HasActivated";
            public const String IS_HOMEPAGE = "IsHomePage";
            public const String SELECTED_MENU = "SelectedMenu";
            public const String IMAGE_UPLOAD_ERROR = "ImageUploadError";
            public const String ORIGINAL_FILE_NAME = "OriginalFileName";
            public const String SEARCH_KEY = "SearchKey";
            public const String CALCULATE_OCCURANCE = "ClaculateOccurance";
            public const String SHOW_EDIT_LINK = "ShowEditLink";
            public const String NEW_ID = "NewID";
            public const String COMPANY_KEY = "CompanyKey";
            public const String HIDE_ADD_TO_FAVORITE = "HideAddToFavorite";
            public const String SHOW_APPLICATION_COUNT = "ShowApplicationCount";
            public const String SECONDARY_MODEL = "SecondaryModel";
            public const String LIST_TYPE = "ListType";
            public const String SUB_MODEL = "SubModel";
            public const String SHOW_SEND_TO_FRIEND = "ShowSendToFriend";
            public const String REMOVE_FROM_FAVORITE = "RemoveFromFavorite";
        }
        #endregion View Data Keys

        #region Email Templates
        public class EmailTemplate
        {
            public const String COMMON = "/EmailTemplates/Common.html";
        }
        /// <summary>
        /// Custom Tag Constants in the Email Templates
        /// </summary>
        public class ETConstants
        {
            public const String MESSAGE = "[*MESSAGE*]";
            public const String DOMAIN = "[*DOMAIN*]";
        }
        #endregion
      
    }
}